package 刷题.leedcode225;
//用两个队列实现栈
import java.util.LinkedList;
import java.util.Queue;

class MyStack1 {
    Queue<Integer> queue1;
    Queue<Integer> queue2;
    public MyStack1() {
        queue1 = new LinkedList<Integer>();
        queue2 = new LinkedList<Integer>();
    }
    public void push(int x) {//把元素压入栈顶
        queue2.offer(x);//因为是队列，先入先出
        while(!queue1.isEmpty()){
            //判断是否为空，为空返回true
            queue2.offer(queue1.poll());
            //将queue1元素取出并放入queue2中
        }
        Queue<Integer> temp = queue1;
        queue1 = queue2;
        queue2 = temp;
    }

    public int pop() {//移除栈顶元素，并返回该元素
        return queue1.poll();//将queue1元素取出
    }

    public int top() {//栈顶元素
        return queue1.peek();//返回队首元素，不删除
    }

    public boolean empty() {//判空
        return queue1.isEmpty();
    }
}
